package com.example.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.example.dto.ArticleFavoriteDTO;
import com.example.vo.ArticlePageVO;

/**
 * 文章收藏服务接口
 */
public interface ArticleFavoriteService {
    
    /**
     * 收藏/取消收藏文章
     * @param articleFavoriteDTO 文章收藏DTO
     * @param userId 用户ID
     * @return 当前收藏状态, true: 已收藏, false: 已取消收藏
     */
    boolean toggleFavorite(ArticleFavoriteDTO articleFavoriteDTO, Integer userId);
    
    /**
     * 查询用户是否已收藏文章
     * @param articleId 文章ID
     * @param userId 用户ID
     * @return 是否已收藏
     */
    boolean hasFavorited(Integer articleId, Integer userId);
    
    /**
     * 获取用户收藏的文章列表
     * @param userId 用户ID
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 文章分页数据
     */
    IPage<ArticlePageVO> getUserFavoriteArticles(Integer userId, int pageNum, int pageSize);
} 